トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     数値と数値として受け取ってくれず、足し算が出来ない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
maki_an
Åê¹ÆNo.41840
投稿日時: 2009-3-20 13:15
新米
居住地:
投稿: 24
使用環境:
FlashCS3

WINXPSP2

DELL PentiumD 1.5Ghz
数値と数値として受け取ってくれず、足し算が出来ない
いつもお世話になっております。
どうしても分からず、また、過去ログを検索して見つけることが
出来なかったので投稿させてください。

xmlからMCを生成し、各MC毎にxmlから抽出した
「タイトル」「背景画像」「x座標」と「y座標」を
持たせています。

生成されたMCは普段はただのアイコンで、
マウスオーバーすると、MCが持っている「x座標」+50
に吹き出し(mc_fukidashi)が出る、
という仕組みにしたいのです。

ですが、うまくいきません。
例えば、あるMCの保持するx座標(my_x)を0とすると、
mc_fukidashiのx座標が「050」となります。
x座標(my_x)を750にすれば75050となり、画面外に行ってしまいます。

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
var my_x:Number = entries[n].attributes["myX"];
var my_y:Number = entries[n].attributes["myY"];
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

宣言の時点で「Number」とした変数を生成したMC(インスタンス名btn)に代入するのですが、
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
btn.my_x = my_x+50;
btn.my_y = my_y;
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
どうも文字列のようなつながり方をしてしまうのです。


参考になるか分かりませんが、
マウスオーバーの時点で作動するエンターフレームの
スクリプトを以下に記します。

よろしくお願いいたします。
野中文雄
Åê¹ÆNo.41841
投稿日時: 2009-3-20 13:47
ちょんまげら
居住地: 東京
投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: 数値と数値として受け取ってくれず、足し算が出来ない
ActionScriptのバージョンは、おそらく2.0をお使いだと「推測」します。

「xmlから抽出した」値は、そのままでは文字列だと思います。つまり、そもそも「数値」になっていないのではありませんか?
引用:
maki_anさんは書きました:
xmlからMCを生成し、各MC毎にxmlから抽出した
「タイトル」「背景画像」「x座標」と「y座標」を
持たせています。
...[中略]...
例えば、あるMCの保持するx座標(my_x)を0とすると、
mc_fukidashiのx座標が「050」となります。
x座標(my_x)を750にすれば75050となり、画面外に行ってしまいます。
var my_x:Number = entries[n].attributes["myX"];
trace(typeof my_x);
// ...[後略]...


----------------
 

maki_an
Åê¹ÆNo.41853
投稿日時: 2009-3-20 21:20
新米
居住地:
投稿: 24
使用環境:
FlashCS3

WINXPSP2

DELL PentiumD 1.5Ghz
Re: 数値と数値として受け取ってくれず、足し算が出来ない
actionscript2.0使用です。説明が足りず、申し訳ありません。

traceしたところ、「string」と出ました。

これがnumberになるようになればよいのですね。

var my_x:Number = entries[n].attributes["myX"];
var my_y:Number = entries[n].attributes["myY"];

my_xを数字として宣言していることにはならないのですね。
引き続き頑張りたいと思います。
野中文雄
Åê¹ÆNo.41854
投稿日時: 2009-3-21 9:11
ちょんまげら
居住地: 東京
投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: 数値と数値として受け取ってくれず、足し算が出来ない
文字列の数字を数値に変換するには、Number()もしくはparseFloat()関数を用います。

変数をNumber型で「宣言」することがただちに、代入値を自動的に数値に「変換」してくれることを意味しません。また、ActionScript 2.0の型指定はSWFの書出し(コンパイル)時にチェックされます。しかし、配列アクセス演算子[]で取出した値については、この型チェックが行われません。

なお、ActionScript 3.0では、数値で宣言した変数に配列アクセス演算子[]で取得した文字列の数字を代入すると、黙示的にデータ型が変換されます。
引用:
maki_anさんは書きました:
traceしたところ、「string」と出ました。

これがnumberになるようになればよいのですね。
...[中略]...
my_xを数字として宣言していることにはならないのですね。
引き続き頑張りたいと思います。


----------------
 

maki_an
Åê¹ÆNo.41867
投稿日時: 2009-3-23 22:22
新米
居住地:
投稿: 24
使用環境:
FlashCS3

WINXPSP2

DELL PentiumD 1.5Ghz
Re: 数値と数値として受け取ってくれず、足し算が出来ない
お返事が遅れて申し訳ありませんでした。
ありがとうございました。

とても助かりました。

AS3.0も徐々に勉強していきたいと思います!

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops